package com.mdd.front.service.order;

import com.mdd.common.core.PageResult;
import com.mdd.front.validate.common.PageValidate;
import com.mdd.front.validate.order.OrderAcceptCreateValidate;
import com.mdd.front.validate.order.OrderAcceptSearchValidate;
import com.mdd.front.validate.order.OrderAcceptUpdateValidate;
import com.mdd.front.vo.order.OrderAcceptDetailVo;
import com.mdd.front.vo.order.OrderAcceptListedVo;
import com.mdd.front.vo.order.completedList.CompletedListVo;
import com.mdd.front.vo.order.reservedList.OrderReservedListVo;

/**
 * 接单服务接口类
 * @author LikeAdmin
 */
public interface IOrderAcceptService {

    /**
     * 接单列表
     *
     * @author LikeAdmin
     * @param pageValidate 分页参数
     * @param searchValidate 搜索参数
     * @return PageResult<OrderAcceptListedVo>
     */
    PageResult<OrderAcceptListedVo> list(PageValidate pageValidate, OrderAcceptSearchValidate searchValidate);


    PageResult<OrderReservedListVo> reservedList(PageValidate pageValidate, OrderAcceptSearchValidate searchValidate);

    PageResult<CompletedListVo> completedList(PageValidate pageValidate, OrderAcceptSearchValidate searchValidate);



    /**
     * 接单详情
     *
     * @author LikeAdmin
     * @param id 主键ID
     * @return OrderAcceptDetailVo
     */
    OrderAcceptDetailVo detail(Integer id);

    /**
     * 接单新增
     *
     * @author LikeAdmin
     * @param createValidate 参数
     */
    void add(OrderAcceptCreateValidate createValidate);


    void appointment(OrderAcceptCreateValidate createValidate);
    /**
     * 接单确认收款
     *
     * @author LikeAdmin
     * @param createValidate 参数
     */
    void receivePayment(OrderAcceptCreateValidate createValidate);


    /**
     * 接单编辑
     *
     * @author LikeAdmin
     * @param updateValidate 参数
     */
    void edit(OrderAcceptUpdateValidate updateValidate);

    /**
     * 接单删除
     *
     * @author LikeAdmin
     * @param id 主键ID
     */
    void del(Integer id);

}
